본문으로 건너뛰기

05.03 일지

Splash Screen 띄우기


새로운 Activity 생성

:Activity 객체 생성, 레이아웃 XML 파일생성

Activity: 구분되는 스크린, 라이프사이클 관리를 해줄 수 있다. 레이아웃 XML: 사용하는 UI 컴포넌트들을 XML 파일에 모두 명시


안드로이드 스튜디오에서 UI를 띄우기 위해서

안드로이드 스튜디오에서 Code/Design로 나눠서 관리할 수 있다. -> XML 파일, <UITOOL ~~ / > 안에서 특성정리

다양한 컴포넌트들 ConstraintLayout → 상대적, 유동적으로 컴포넌트 배치 ImageView → 리소스에 저장된 이미지를 띄움 TextView → 리소스에 저장된 String을 띄움


String 리소스 정리 ⇒ @String

사용할 String res/values/strings.xml 파일에 명시 <string name="VAR">RAW STRING</string>@String/VAR로 접근 해당 String을 수정하고 싶을 때 일일이 구현로직코드에 들어가서 수정할 필요가 없음. 코드와 데이터를 분리해서 유지보수용이


앱에 쓸 이미지 저장 → 이미지 뷰어

resource manager > import drawables

우선 Density/No Density로 생성


★ No Density 및 다른 것들의 의미가 뭘까?이후 알아보기 https://developer.android.com/training/multiscreen/screendensities?hl=ko


SplashActivity → MainActivity 플로우 설정

// 일정 시간 지연 이후 실행하기 위한 코드
Handler(Looper.getMainLooper()).postDelayed({

// 일정 시간이 지나면 MainActivity로 이동
val intent= Intent(this,MainActivity::class.java)
startActivity(intent)

// 이전 키를 눌렀을 때 스플래스 스크린 화면 이동을 방지
finish()

}, 1000) // 시간 1초 이후 실행

android.os.Handler(Looper): 스레드간 통신을 통해서 비동기 처리를 관리 스레드간 통신을 위해서 메시지큐를 사용한다. Looper: 스레드 메시지 관리 = 스레드간 통신 관리 MainLooper → main thread(UI thread) Intent: 컴포넌트 통신에 사용됨 해당 코드에서 외부의 MainActivity를 호출한다.


그렇게 코드를 짰는데...

SplashActivity 이후 Main으로 가지 않고 바로 앱이 종료되는 문제발생 ★ 매니페스트 파일에서 구성에 대한 명시가 제대로 됐는지 확인할 것